1. Field
This invention relates to systems, methods, and computer program products for performing live cloning of running systems.
2. Description of Background
Replication is a common technique used to mask system failures and to provide high system availability. Replication utilizes redundant resources to ensure that when any component of a service fails, another component can replace the failed one to mask the failure in the system. Traditional approaches to replication provided means for replicating only data. Modern data centers replicate both code and data to ensure that a given service remains available even when one running instance of that service fails.
To support such a design, an instance of a service must have the ability to properly resume operation once it has crashed and been restarted. For example, when a given instance of the service fails (e.g. due to failure of the hardware on which the service was running) other instances of the service continue to service requests and modify their state. When the failed service instance is restarted, the service acquires the same state as the other running instance before it can resume servicing client requests.